xen: Fix dumb boot allocator breakage that prevents loop termination
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 23 Feb 2007 14:36:33 +0000 (14:36 +0000)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 23 Feb 2007 14:36:33 +0000 (14:36 +0000)
in some cases. :-)
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/common/page_alloc.c

index b7e8416d94d5856fa94d309c306c99305b270d32..831e6b7feae4d8cff5e0667d9e3fff12c1aa7280 100644 (file)
@@ -262,9 +262,9 @@ unsigned long alloc_boot_low_pages(
     unsigned long pg, i;
 
     /* Search forwards to obtain lowest available range. */
-    for ( pg = first_valid_mfn & ~(pfn_align-1);
-          (pg + nr_pfns) < max_page;
-          pg = (pg + i + pfn_align - 1) & ~(pfn_align - 1) )
+    for ( pg = first_valid_mfn & ~(pfn_align - 1);
+          (pg + nr_pfns) <= max_page;
+          pg = (pg + i + pfn_align) & ~(pfn_align - 1) )
     {
         for ( i = 0; i < nr_pfns; i++ )
             if ( allocated_in_map(pg+i) )